
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the BTLAUDIOPLAY_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// BTLAUDIOPLAY_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef BTLAUDIOPLAY_EXPORTS
#define BTLAUDIOPLAY_API __declspec(dllexport)
#else
#define BTLAUDIOPLAY_API __declspec(dllimport)
#endif

#ifdef __cplusplus
extern "C" {
#endif

#include "audiodatatype.h"

BTLAUDIOPLAY_API HANDLE WINAPI BtlAudioPlay_create(void);
BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_destory(HANDLE &audioPlayHandle);

BTLAUDIOPLAY_API BOOL WINAPI BtlAudioPlay_init(HANDLE audioPlayHandle, HWND hwnd, BtlAudioFormat *inFormat);
BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_deinit(HANDLE audioPlayHandle);

BTLAUDIOPLAY_API BOOL WINAPI BtlAudioPlay_setVolume(HANDLE audioPlayHandle, LONG volume);
BTLAUDIOPLAY_API BOOL WINAPI BtlAudioPlay_getVolume(HANDLE audioPlayHandle, LONG *volume);

BTLAUDIOPLAY_API BOOL WINAPI BtlAudioPlay_start(HANDLE audioPlayHandle, void *audioData, unsigned long size);
BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_pause(HANDLE audioPlayHandle);
BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_stop(HANDLE audioPlayHandle);
BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_play(HANDLE audioPlayHandle);

BTLAUDIOPLAY_API void WINAPI BtlAudioPlay_sendAudioData(HANDLE audioPlayHandle, unsigned char *audioData, 
									   unsigned long size);

#ifdef __cplusplus
}
#endif
